﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Datalayer;
using Entities;
using Common;

namespace QLHoNgheo
{
    public partial class QLNguoiDung : Form
    {
        public QLNguoiDung()
        {
            InitializeComponent();
        }
        IQueryMgr iq;
        DataTable dt;
        DataRow r;
        bool _IsNew = false; USER ur;

        private void QLNguoiDung_Load(object sender, EventArgs e)
        {
            load_dgv();
        }
        void load_dgv()
        {
            iq = QueryMgr.GetDbInstance();
            dt = new DataTable();
            dt = Cl_Convert.ToDataTable(iq.U_GetAllUSER());
            gridControl1.DataSource = dt;
        }

        private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            r = gridView1.GetDataRow(gridView1.FocusedRowHandle);
            if (r != null)
            {
                ur = new USER();
                int ThanhVienID = int.Parse(r["UserID"].ToString());
                iq = QueryMgr.GetDbInstance();
                ur = iq.U_GetUSERByID(ThanhVienID);
                ur.UserID = ThanhVienID;
                txt_tk.Text = ur.UserName;
                txt_pw.Text = ur.Password;
                txt_fn.Text = ur.FullName;
                radioGroup1.EditValue = ur.Role;
            }
        }

        private void bt_new_Click(object sender, EventArgs e)
        {
            txt_tk.Text = "";
            txt_pw.Text = "";
            txt_fn.Text = "";
            radioGroup1.EditValue = null;
            bt_new.Enabled = false;
            txt_tk.Enabled = true;
            bt_del.Text = "Hủy bỏ";
            _IsNew = true;
        }

        private void bt_save_Click(object sender, EventArgs e)
        {
            try
            {
                if (_IsNew == true)
                {
                    ur = new USER();
                    ur.Role = radioGroup1.EditValue.ToString();
                    ur.FullName = txt_fn.Text;
                    ur.IsDeleted = false;
                    ur.Password = txt_pw.Text;
                    ur.UserName = txt_tk.Text;

                    iq = QueryMgr.GetDbInstance();
                    if (iq.U_GetUSERByUserName(ur.UserName) == null)
                    {
                        iq.U_NewUSER(ur);
                        MessageBox.Show("Thêm mới người dùng thành công");

                        bt_new.Enabled = true;
                        _IsNew = false;
                        txt_tk.Enabled = false;
                        bt_del.Text = "Xóa";
                    }
                    else
                    {
                        MessageBox.Show("Đã tồn tại tên tài khoản này");
                    }
                }
                else
                {
                    ur.Role = radioGroup1.EditValue.ToString();
                    ur.FullName = txt_fn.Text;
                    ur.IsDeleted = false;
                    ur.Password = txt_pw.Text;
                    ur.UserName = txt_tk.Text;

                    iq = QueryMgr.GetDbInstance();
                    iq.U_EditUSER(ur);
                    MessageBox.Show("Thay đổi thông tin người dùng thành công");
                }
                load_dgv();
            }
            catch { }
        }

        private void bt_del_Click(object sender, EventArgs e)
        {
            if (_IsNew == true)
            {
                bt_new.Enabled = true;
                _IsNew = false;
            }
            else
            {
                if (MessageBox.Show("Bạn muốn xóa thành viên này?", "Thực hiên chức năng xóa",
                   MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    iq = QueryMgr.GetDbInstance();
                    iq.U_DelOrResUser(ur.UserID);
                    MessageBox.Show("Xóa người dùng thành công");
                }
            }
            load_dgv();
        }
    }
}
